home *** CD-ROM | disk | FTP | other *** search
/ ftp.barnyard.co.uk / 2015.02.ftp.barnyard.co.uk.tar / ftp.barnyard.co.uk / cpm / walnut-creek-CDROM / COMMODOR / WORDWORK.ARC / WORD WORKER (.txt)
Commodore BASIC  |  2000-06-30  |  8KB  |  297 lines

  1. 10 REM    WORD WORKER 1.0
  2. 20 REM          BY
  3. 30 REM     JIM GARRICK
  4. 40 REM:
  5. 50 REM:*** C-64 VERSION *******
  6. 90 SC=53281:BO=53280:X=1:PRINTCHR$(8):CX=204:CL=207
  7. 95 DIMA$(1000):DIMP$(100):POKE650,128
  8. 100 POKESC,0:POKEBO,14
  9. 110 PRINTCHR$(14):PRINT"[147][150]               [205][197][206][213]                     [154]"
  10. 130 PRINTTAB(11)"[153][195][146][154]REATE DOCUMENT."
  11. 140 PRINT""TAB(11)"[153][208][146][154]RINT DOCUMENT."
  12. 160 PRINT""TAB(11)"[153][199][146][154]ET DOCUMENT."
  13. 165 PRINT""TAB(11)"[153][211][146][154]AVE DOCUMENT."
  14. 170 PRINT""TAB(11)"[153][204][146][154]IST DOC. ON SCREEN."
  15. 175 PRINT""TAB(11)"[153][196][146][154]ELETE DISK FILE."
  16. 177 PRINT""TAB(11)"[153][197][146][154]DIT DOCUMENT."
  17. 180 PRINT""TAB(11)"[153][210][146][154]EAD CATALOG."
  18. 190 PRINT""TAB(11)"[153][205][146][154]EMORY CLEAR."
  19. 191 PRINT""TAB(11)"[153][212][146][154]ERMINATE."
  20. 195 PRINTCHR$(17)TAB(10)"[158] [195][200][207][201][195][197] ?"
  21. 200 C$="":GETC$:GOSUB1000:IFC$=""THEN200
  22. 203 M$=LEFT$(M$,1)
  23. 205 IFC$="C"THENGOSUB500
  24. 210 IFC$="P"THENGOSUB2000
  25. 212 IFC$="G"THENGOSUB3000
  26. 215 IFC$="S"THENGOSUB4000
  27. 220 IFC$="L"THENGOSUB6000
  28. 225 IFC$="D"THENGOSUB7000
  29. 226 IFC$="E"THENGOSUB8000
  30. 227 IFC$="M"THENGOSUB5000
  31. 228 IFC$="R"THENGOSUB11000
  32. 230 IFC$="T"THENPRINT"[147][154]"CHR$(142)CHR$(9):POKESC,6:POKEBO,14:POKE650,0:END
  33. 260 GOTO100
  34. 399 REM ********* INPUT ROUTINE ***********************************************
  35. 500 MA=40:E=0:IFX>1THENA$(X)=""
  36. 510 PRINTCHR$(147)"         [206][197][215][160][205][207][196][197]                       ":C$=""
  37. 512 IFX>1THENPRINTCHR$(19)CHR$(28)CHR$(18)"[195][207][206][212][201][206][213][193][212][201][207][206] [146]"
  38. 513 IFE=1THENPRINTCHR$(19)CHR$(158)CHR$(18)"[210][197][208][204][193][195][197][205][197][206][212]  [146]"
  39. 515 PRINT"[145][198]-1 = [205]ENU           [198]-2 = [206]EW PAGE     "
  40. 516 PRINT"[145][198]-3 = [197]NLARGED       [198]-4 = [206]ORMAL       "
  41. 517 PRINT"[145][198]-5 = [213]NDERLINE ON   [198]-6 = [213]NDERLINE OFF"
  42. 518 PRINT"[145][198]-7 = [201]TALICS ON     [198]-8 = [201]TALICS OFF  [154]"
  43. 519 PRINTA$(X);:IFE=1THENA$(X)="":PRINT
  44. 520 IF PEEK(214)>23THENPOKECX,1:POKECL,0:GOTO510
  45. 522 POKECX,0:POKECL,0:GETC$:GOSUB1000:IFC$=""THEN522
  46. 523 POKECL,2
  47. 530 IFC$=CHR$(160)THENC$=CHR$(32)
  48. 533 IFC$=CHR$(13)ANDE=1THEN700
  49. 534 IFC$=CHR$(137)THENPRINTCHR$(95);:GOTO750
  50. 535 IFC$=CHR$(134)THENPRINTCHR$(94);:GOTO750
  51. 536 IFC$=CHR$(138)THENPRINTCHR$(95);:GOTO750
  52. 537 IFC$=CHR$(135)THENPRINTCHR$(94);:GOTO750
  53. 538 IFC$=CHR$(139)THENPRINTCHR$(95);:GOTO750
  54. 539 IFC$=CHR$(136)THENPRINTCHR$(94);:GOTO750
  55. 540 IFC$=CHR$(140)THENPRINTCHR$(95);:GOTO750
  56. 575 IFC$=CHR$(133)THEN703
  57. 577 IFC$=CHR$(20)ANDLEN(A$(X))=0THEN522
  58. 579 IFC$=CHR$(13)THENA$(X)=A$(X)+C$:X=X+1:PRINTCHR$(32):GOTO520
  59. 580 PRINTC$;
  60. 600 IFC$=CHR$(20)THENA$(X)=LEFT$(A$(X),LEN(A$(X))-1):GOTO522
  61. 610 A$(X)=A$(X)+C$:C$="":IFLEN(A$(X))<MATHEN522
  62. 620 IFRIGHT$(A$(X),1)=CHR$(32)THENGOTO640
  63. 630 A$(X+1)=RIGHT$(A$(X),1)+A$(X+1):A$(X)=LEFT$(A$(X),LEN(A$(X))-1):GOTO620
  64. 640 FORU=1TOMA-LEN(A$(X)):PRINTCHR$(20);:NEXTU
  65. 645 FORA=1TOLEN(A$(X+1)):PRINTCHR$(32);:NEXTA
  66. 670 X=X+1:PRINTA$(X);:GOTO520
  67. 700 IFA$(X)=""THENA$(X)=" "
  68. 701 A$(X)=A$(X)+C$:X=X+1
  69. 703 IFE=1THENE=0:X=1:POKECX,1:POKECL,0:RETURN
  70. 704 IFC$=CHR$(133)ANDLEN(A$(X))>1THENX=X+1
  71. 705 A$(X)=CHR$(7):POKECX,1:POKECL,0:RETURN
  72. 750 A$(X)=A$(X)+C$:GOTO522
  73. 999 REM ******* CHECK GET STATEMENT *******************************************
  74. 1000 IFC$=CHR$(145)THENC$=""
  75. 1010 IFC$=CHR$(29)THENC$=""
  76. 1020 IFC$=CHR$(157)THENC$=""
  77. 1030 IFC$=CHR$(19)THENC$=""
  78. 1040 IFC$=CHR$(147)THENC$=""
  79. 1045 IFC$=CHR$(17)THENC$=""
  80. 1050 RETURN
  81. 1999 REM ******* PRINT ROUTINE ************************************************
  82. 2000 POKEBO,0:POKESC,9:PRINTCHR$(147):PRINTCHR$(144)
  83. 2005 PRINT:PRINT"[204][201][206][197] [204][197][206][199][212][200]   [146]  60";:INPUT"[157][157][157][157]";LA
  84. 2007 PRINT:PRINT"[201][206][211][197][212][160][204][197][206][199][212][200]  [146]40";:INPUT"[157][157][157][157]";LB
  85. 2009 PRINT:PRINT"[211] OR [196] [211][208][193][195][201][206][199][146]  S ";:INPUT"[157][157][157][157]";SD$
  86. 2011 PRINT:PRINT"[204][201][206][197][160][208][197][210][160][208][193][199][197] [146]  50";:INPUT"[157][157][157][157]";SK:SK=66-SK
  87. 2012 T1$="":X=1:LL=LA:T$="":T2$="":P$=""
  88. 2050 OPEN4,4,7:PRINT#4,CHR$(27)"[206]"CHR$(SK)
  89. 2051 IFA$(X)=""THEN2660
  90. 2059 T2$=A$(X)
  91. 2060 FORA=1TOLL-LEN(P$)
  92. 2061 IFT2$=""THEN2094
  93. 2065 X$=LEFT$(T2$,1):T2$=RIGHT$(T2$,LEN(T2$)-1)
  94. 2075 IFX$=CHR$(91)THENLL=LB:GOTO2060
  95. 2076 IFX$=CHR$(93)THEN2060
  96. 2080 REM * PRINTER FUNCTION CONVERSION *
  97. 2081 IFX$=CHR$(134)THENX$=CHR$(14)
  98. 2082 IFX$=CHR$(135)THENX$=CHR$(27)+CHR$(45)+CHR$(1)
  99. 2083 IFX$=CHR$(136)THENX$=CHR$(27)+CHR$(52)
  100. 2084 IFX$=CHR$(137)THENX$=CHR$(12)
  101. 2085 IFX$=CHR$(138)THENX$=CHR$(15)
  102. 2086 IFX$=CHR$(139)THENX$=CHR$(27)+CHR$(45)+CHR$(0)
  103. 2087 IFX$=CHR$(140)THENX$=CHR$(27)+CHR$(53)
  104. 2088 REM *****************************
  105. 2089 IFX$=CHR$(13)THEN2660
  106. 2090 P$=P$+X$
  107. 2094 IFLEN(T2$)=0THENX=X+1:GOTO2051
  108. 2095 NEXTA
  109. 2100 GOTO2610
  110. 2200 FORA=1TOLA
  111. 2210 X$=LEFT$(T2$,1):T2$=RIGHT$(T2$,LEN(T2$)-1)
  112. 2211 IFLEN(T2$)=0THENX=X+1:T2$=A$(N)
  113. 2220 IFX$=CHR$(13)THEN2300
  114. 2230 P$=P$+X$
  115. 2240 NEXTA
  116. 2300 IN=(80-LEN(P$))/2:GOTO2670
  117. 2610 FORA=1TOLEN(P$)
  118. 2620 IFRIGHT$(P$,1)=CHR$(32)THEN2660
  119. 2630 T1$=RIGHT$(P$,1)+T1$:P$=LEFT$(P$,LEN(P$)-1)
  120. 2640 NEXTA
  121. 2660 IFLEFT$(P$,1)=CHR$(32)THENP$=RIGHT$(P$,LEN(P$)-1)
  122. 2662 PRINTP$
  123. 2665 IN=(80-LL)/2
  124. 2670 PRINT#4,CHR$(17)SPC(IN)P$:P$="":P$=T1$:T1$=""
  125. 2680 IFSD$="D"THENPRINT#4,CHR$(10)
  126. 2700 IFX$=CHR$(13)THENLL=LA
  127. 2705 IFLEFT$(A$(X-1),1)=CHR$(7)THENPRINT#4,CHR$(12):PRINT#4:CLOSE4:RETURN
  128. 2710 GOTO2060
  129. 2999 REM ****** LOAD ROUTINE **************************************************
  130. 3000 PRINTCHR$(147):POKE214,11:PRINT
  131. 3001 PRINT" [197]NTER DOCUMENT NAME.    ":INPUTNA$
  132. 3010 PRINT" [196]ISK OR [212]APE?      (D/T)[146]   ":INPUT"  D[157][157][157]";T$:T$=LEFT$(T$,1)
  133. 3025 CS$="":PRINT" [207]K TO CLEAR MEMORY (Y/N)[146]   ":INPUT"  N[157][157][157]";CS$
  134. 3026 CS$=LEFT$(CS$,1):IFCS$="Y"THENGOSUB5000
  135. 3027 A$(X)=""
  136. 3028 IFT$="T"THENOPEN8,1,0,NA$:GOTO3040
  137. 3031 OPEN15,8,15:OPEN8,8,8,"@0:"+NA$+",S,READ":GOSUB10000:IFEA>20THEN3480
  138. 3040 PRINT" [210]EADING FILE.           "
  139. 3050 FORA=1TO35
  140. 3055 GET#8,C$
  141. 3060 IFST<>0THEN3480
  142. 3090 IFC$=CHR$(13)THENA$(X)=A$(X)+C$:X=X+1:GOTO3050
  143. 3110 A$(X)=A$(X)+C$
  144. 3120 NEXTA
  145. 3125 FORB=1TO45
  146. 3130 GET#8,C$
  147. 3135 IFST<>0THEN3480
  148. 3140 IFC$=CHR$(13)THENA$(X)=A$(X)+C$:X=X+1:GOTO3050
  149. 3150 IFC$=CHR$(32)THENA$(X)=A$(X)+C$:X=X+1:GOTO3050
  150. 3155 A$(X)=A$(X)+C$
  151. 3160 NEXTB
  152. 3170 X=X+1:GOTO3050
  153. 3480 CLOSE8:CLOSE15
  154. 3499 RETURN
  155. 3999 REM ******** SAVE ROUTINE ************************************************
  156. 4000 PRINTCHR$(147):POKE214,11:PRINT:X=1
  157. 4001 PRINT" [197]NTER DOCUMENT NAME.    ":INPUTNA$
  158. 4005 PRINT" [196]ISK OR [212]APE?      (D/T)[146]   ":INPUT"  D[157][157][157]";T$:T$=LEFT$(T$,1)
  159. 4006 IFT$="T"THENOPEN7,1,1,NA$:GOTO4020
  160. 4010 OPEN15,8,15:OPEN7,8,7,"@0:"+NA$+",S,WRITE":GOSUB10000:IFEA>20THEN4060
  161. 4020 PRINT " [211]AVING",NA$
  162. 4040 IFLEFT$(A$(X),1)=CHR$(7)THENPRINT#7,A$(X):GOTO4060
  163. 4055 PRINT#7,A$(X);:X=X+1
  164. 4057 GOTO4040
  165. 4060 CLOSE7:CLOSE15
  166. 4070 RETURN
  167. 4999 REM ******** CLEAR ARRAY *************************************************
  168. 5000 PRINT"[153] [195][204][197][193][210][201][206][199][160][205][197][205][207][210][217]         ":FORX=1TO1000
  169. 5010 A$(X)=""
  170. 5020 NEXT
  171. 5023 X=1
  172. 5030 RETURN
  173. 5999 REM ******** LIST TO SCREEN **********************************************
  174. 6000 Q=X:X=1
  175. 6005 PRINTCHR$(147)
  176. 6015 IFA$(X)=CHR$(7)ORA$(X)=""THEN 6100
  177. 6020 PRINT A$(X)
  178. 6025 IFPEEK(214)>21THEN6100
  179. 6030 X=X+1:GOTO6015
  180. 6100 PRINT"        [200][201][212][160][193][206][217][160][203][197][217][160][212][207][160][195][207][206][212][201][206][213][197]         "
  181. 6110 GETW$:IFW$=""THEN6110
  182. 6113 IFA$(X)=""THEN RETURN
  183. 6115 IFA$(X)=CHR$(7)THENX=Q:RETURN
  184. 6120 X=X+1:GOTO6005
  185. 6999 REM ******** SCATCH FILE *************************************************
  186. 7000 PRINTCHR$(147):POKE214,11:PRINT
  187. 7001 OPEN 15,8,15
  188. 7003 PRINT" [197]NTER FILE TO DELETE    ":INPUTNA$
  189. 7005 PRINT#15,"S0:"+NA$
  190. 7010 INPUT#15,A$,B$,C$,D$
  191. 7020 PRINTA$,B$,C$,D$
  192. 7030 CLOSE15
  193. 7040 FORT=1TO1000:NEXT:RETURN
  194. 7999 REM ******* EDIT RUOTINE *************************************************
  195. 8000 PRINT"[147]":POKESC,9:POKEBO,0:PRINTSPC(13)"[158][197][196][201][212] [205][207][196][197]":PRINT
  196. 8005 CR$="":ER$="":Q=X:X=1
  197. 8010 PRINT"[158][208][210][197][211][211] [198]-1[146] = [210]ETURN TO MENU."
  198. 8011 PRINT"      [198]-2[146] = [205]OVE A LINE."
  199. 8012 PRINT"      [198]-3[146] = [210]EPLACE LINE."
  200. 8013 PRINT"      [198]-5[146] = [211]EARCH BACKWARD."
  201. 8016 PRINT"      [198]-7[146] = [211]EARCH FORWARD."
  202. 8020 PRINT"      [198]-8[146] = [199]LOBAL CHANGE."
  203. 8026 PRINT"    [195]HOICE ?"
  204. 8030 GETC$:GOSUB1000:IFC$=""THEN8030
  205. 8035 IFX<1THENX=1
  206. 8036 IFX>1000THENX=1000
  207. 8040 IFC$=CHR$(136)THENPRINTX;" [158]"A$(X):X=X+1:IFX>QTHENX=Q:PRINT"[197][206][196] [207][198] [196][193][212][193][146]"
  208. 8045 IFC$=CHR$(135)THENPRINTX;" [158]"A$(X):X=X-1
  209. 8050 IFC$=CHR$(134)THENINPUT"[197][206][212][197][210][160][204][201][206][197][160]#[146]";NU:GOTO8362
  210. 8055 IFC$=CHR$(133)THENX=Q:RETURN
  211. 8060 IFC$=CHR$(137)THEN 8100
  212. 8061 IFC$=CHR$(140)THEN 8200
  213. 8064 GOTO8030
  214. 8100 INPUT"[197][206][212][197][210] [204][201][206][197](S)[160]#[160][212][207][160][194][197][160][205][207][214][197][196][146]";M1
  215. 8102 INPUT"                  [219] [193][206][207][212][200][197][210][146]";M2
  216. 8103 IFLEN(A$(M1))+LEN(A$(M2))>80THENPRINT"[211][212][210][201][206][199][160][212][207][160][204][207][206][199][146]":X=1:GOTO8010
  217. 8104 IFRIGHT$(A$(M1),1)=CHR$(13)ANDM2>0THENA$(M1)=LEFT$(A$(M1),LEN(A$(M1))-1)
  218. 8110 INPUT"[197][206][212][197][210] [204][201][206][197][160]#[160][212][207][160][194][197][160][210][197][208][204][193][195][197][196][146]";M3
  219. 8120 JG$=A$(M1)+CHR$(32)+A$(M2):A$(M3)="":A$(M1)="":A$(M2)=""
  220. 8125 A$(M3)=JG$
  221. 8150 X=1:GOTO8010
  222. 8200 PRINT"[158][197][206][212][197][210] [215][207][210][196][160][212][207][160][195][200][193][206][199][197][146]:[144]"
  223. 8210 FORA=1TO80
  224. 8220 GETC$:GOSUB1000:IFC$=""THEN8220
  225. 8225 IFC$=CHR$(13)THEN8250
  226. 8226 IFC$=CHR$(20)THENER$=LEFT$(ER$,LEN(ER$)-1):GOTO8235
  227. 8230 ER$=ER$+C$
  228. 8235 PRINTC$;
  229. 8240 NEXTA
  230. 8250 PRINT:PRINT"[158][197][206][212][197][210] [195][207][210][210][197][195][212][201][207][206][144][146]"
  231. 8255 O=LEN(ER$)
  232. 8260 FORA=1TO80
  233. 8270 GETJ$:IFJ$=""THEN8270
  234. 8280 IFJ$=CHR$(13)THEN8310
  235. 8281 IFJ$=CHR$(20)THENCR$=LEFT$(CR$,LEN(CR$)-1):GOTO8290
  236. 8285 CR$=CR$+J$
  237. 8290 PRINTJ$;
  238. 8300 NEXTA
  239. 8310 PRINT:PRINT"[158][211][197][193][210][195][200][201][206][199]"
  240. 8320 FORA=1TO1000
  241. 8321 FORB=1TOLEN(A$(A))
  242. 8322 IFLEFT$(A$(A),1)=CHR$(7)THEN8348
  243. 8329 IFMID$(A$(A),B,O)=ER$THENOO=LEN(A$(A))-B+1-LEN(ER$)
  244. 8330 IFMID$(A$(A),B,O)=ER$THENWC$=RIGHT$(A$(A),OO)
  245. 8340 IFMID$(A$(A),B,O)=ER$THENPRINT"[198][207][213][206][196][146]"CHR$(144)A$(A)CHR$(158):GOTO 8344
  246. 8342 NEXTB
  247. 8343 NEXTA
  248. 8344 INPUT"[195][200][193][206][199][197] [146]  Y[157][157][157]";T$
  249. 8345 IFT$<>"Y"THENPRINT"[158][211][197][193][210][195][200][201][206][199]":GOTO8342
  250. 8346 A$(A)=LEFT$(A$(A),B-1)+CR$+WC$:PRINTA$(A):PRINT"[211][197][193][210][195][200][201][206][199][146]":GOTO8342
  251. 8348 PRINT"[147][158][211][197][193][210][195][200] [195][207][205][208][204][197][212][197] [144]":PRINT:ER$="":CR$="":X=1:GOTO8010
  252. 8362 X=NU:E=1:MA=80:POKEBO,14:POKESC,0:GOSUB510:POKEBO,0:POKESC,9
  253. 8365 X=1:PRINTCHR$(147)
  254. 8370 GOTO8010
  255. 9999 REM ******** READ ERROR CHANNEL ******************************************
  256. 10000 INPUT#15,EA,EB$,EC,ED:IFEA<20THENRETURN
  257. 10005 IFEA=50THENRETURN
  258. 10010 PRINT""EA;""EB$"[146]",EC;ED
  259. 10020 PRINT" HIT ANY KEY TO CONTINUE."
  260. 10025 GETW$:IFW$=""THEN10025
  261. 10030 RETURN
  262. 10999 REM ****** READ CATALOG *************************************************
  263. 11000 PRINT"[147]           [210][197][193][196][201][206][199] [195][193][212][193][204][207][199]              [154]":OPEN1,8,0,"$
  264. 11005 [129]L[178]1[164]100:P$(L)[178]"":[130]:G[178]1
  265. 11190 [161]#1,B$:[139]ST[179][177]0[167]11270
  266. 11200 [139]B$[179][177][199](34)[167]11190
  267. 11210 P$[178]""
  268. 11220 [161]#1,B$:[139]B$[179][177][199](34)[167]P$[178]P$[170]B$:[137]11220
  269. 11230 [161]#1,B$:[139]B$[178][199](32)[167]11230
  270. 11240 P$(G)[178]P$:[151]214,12:[153]:[153][199](18)[199](158)[163]18)G
  271. 11250 [161]#1,B$:[139]B$[179][177]""[167]11250
  272. 11260 [139]ST[178]0[167]G[178]G[170]1:[137]11190
  273. 11270 [160]1
  274. 11290 N[178]10
  275. 11300 [153]"LOADPRINTSYSSTR$RIGHT$(null)(null)CLOSELEN(null)(null)(null)VAL(null)(null)(null) FOR":[153]
  276. 11320 [139]N[179]10[167]N[178]10
  277. 11330 [139]N[177]100[167]N[178]100
  278. 11340 [129]J[178](N[171]9)[164]N:[139]J[178]1[167][153]""P$(J):[130]J
  279. 11343 [153]P$(J)
  280. 11345 [130]J
  281. 11350 [153][199](19)[163]18)"   (null)(null)VAL(null)(null) (null)(null)VAL PEEKVAL(null)(null)(null)    ":[153]
  282. 11360 [153][163]18)"PRINTASC-1CONTWAIT = (null)ETURN TO MENU."
  283. 11365 [153][163]18)"PRINTASC-3CONTWAIT = (null)OAD FILE."
  284. 11370 [153][163]18)"PRINTASC-5CONTWAIT = (null)REVIOUS PAGE."
  285. 11380 [153][163]18)"PRINTASC-7CONTWAIT = (null)EXT PAGE"
  286. 11390 [153][163]18)"PRINTASC-8CONTWAIT = STR$ELETE FILE."
  287. 11400 C$[178]"":[161]C$:[141]1000:[139]C$[178]""[167]11400
  288. 11410 [139]C$[178][199](136)[167]N[178]N[170]10:[137]11300
  289. 11420 [139]C$[178][199](135)[167]N[178]N[171]10:[137]11300
  290. 11425 [139]C$[178][199](140)[167][151]214,11:[153]:[141]7001:[137]11300
  291. 11430 [139]C$[178][199](133)[167][142]
  292. 11440 [139]C$[178][199](134)[167][137]11500
  293. 11450 [137]11400
  294. 11500 [151]214,11:[153]:[153]"PRINT VALNTER FILE NAME         CONT":[133]NA$
  295. 11530 [141]3025
  296. 11550 [142]
  297.